package org.dromara.solonplugins.job;

/**
 * Job执行器接口
 *
 * @author: aoshiguchen
 */
public interface IJobExecutor {

	/**
	 * 初始化
	 * @throws Exception
	 */
	void init() throws Exception;

	/**
	 * 新增job
	 * @param jobInfo job信息
	 */
	void add(JobInfo jobInfo);

	/**
	 * 删除job
	 * @param jobName Job名称
	 */
	void remove(String jobName);

	/**
	 * 删除job
	 * @param jobId JobId
	 */
	void removeById(String jobId);

	/**
	 * 启动job调度
	 * @param jobName job名称
	 */
	void start(String jobName);

	/**
	 * 启动job调度
	 * @param jobId JobId
	 */
	void startById(String jobId);

	/**
	 * 停止job调度
	 * @param jobName job名称
	 */
	void stop(String jobName);

	/**
	 * 停止job调度
	 * @param jobId jobId
	 */
	void stopById(String jobId);

	/**
	 * 触发
	 * @param jobName job名称
	 * @param param job参数
	 */
	void trigger(String jobName, String param);

	/**
	 * 触发
	 * @param jobId jobId
	 * @param param job参数
	 */
	void triggerById(String jobId, String param);
}
